home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-01-17 | 1.9 KB | 92 lines | [TEXT/CWIE] |
- program UDPExample;
-
- uses
- Events, EPPC, AppleEvents, TextUtils,
- MyInitialization, MyStartup, MyTransport, MyConnections, MyGrowZones;
-
- var
- quitNow: Boolean;
-
- type
- ServerObject = object(LineConnectionObject)
- procedure Established;
- override;
- procedure LineAvailable (line: Str255);
- override;
- end;
- MyListenerObject = object(ListenerObject)
- procedure ConnectionAvailable(tref: TransportRef);
- override;
- end;
-
- procedure ServerObject.Established;
- var
- junk: OSErr;
- localip: IPAddr;
- localport: integer;
- remoteip: longint;
- remoteport: integer;
- begin
- junk := TransportGetPorts(tref, localip, localport, remoteip, remoteport);
- writeln( 'Connection from ', IPAddrToStr( remoteip ), ':', remoteport );
- SendLine( 'Hello!' );
- end;
-
- procedure ServerObject.LineAvailable (line: Str255);
- begin
- if IUEqualString( line, 'quit' ) = 0 then begin
- SendLine( 'Nice chatting with you');
- Close;
- end else begin
- SendLine( 'Why do you say "' + line + '"?' );
- end;
- end;
-
- procedure MyListenerObject.ConnectionAvailable( connection: TransportRef );
- var
- server: ServerObject;
- begin
- new(server);
- server.NewExistingConnection( connection );
- end;
-
- procedure WNE;
- var
- junk: OSErr;
- dummy:Boolean;
- er:EventRecord;
- begin
- dummy:=WaitNextEvent(everyEvent,er,0,nil);
- if er.what = keyDown then begin
- quitNow := true;
- end;
- if er.what = kHighLevelEvent then begin
- junk := AEProcessAppleEvent(er);
- end;
- IdleStartup;
- end;
-
- var
- err: OSErr;
- msg: integer;
- listener: MyListenerObject;
- begin
- Initialization;
- quitNow := false;
- InitStartup;
- StartupConnections;
- ConfigureTransport( true );
- ConfigureGrowZones( 20000 );
- if Startup( msg ) = noErr then begin
- new( listener );
- err := listener.CreateListener( 0, 9999, 5 );
- if err = noErr then begin
- writeln( 'Starting' );
- while not quitNow do begin
- WNE;
- end;
- end;
- FinishStartup;
- end;
- end.
-